The present invention relates to a high-speed data communication system between a client and a server via networks, and more particularly, to a high-speed network data communication system between a remote server connected to a high-speed network such as the ATM network and a client connected to a low-speed network such as the Ethernet.
A system in which a client accesses a file of a remote server via networks, there is a known system in which a client communicates directly with a server by using the TCP/IP (Transmission Control Protocol/Internet Protocol).
The TCP/IP is a high-speed data communication protocol used in internet communication or the like (Douglas E. Comer, xe2x80x9cInternetworking With TCP/IPxe2x80x9d, Vol. 1, Prentice Hall).
As shown in FIG. 6a, the IP is located in a network layer (504, 510, 524) of a protocol stack reference model of the ISO (International Organization for Standardization) and allows data communication to be executed hop by hop between computers existing on a communication route.
When gateways (510, 524) or routers located on the communication route check a destination address of a packet and the destination address is a self address (524), the packet is passed to an upper transport layer (522). If the address is not the self address (510), a routing table is searched and the packet is passed to a network interface driver (data-link layer) designated in the table.
The TCP is located in the transport layer of the reference model. Data communication is executed with the TCP between end-to-end computers while executing flow control, congestion control, and retransmission control.
Communication performance is improved by the flow control which changes a sliding window size according to buffer capacity of the communication partner. When round-trip time increases, it is determined that congestion occurs in the network and transfer speed is suppressed, thereby reducing the congestion in the network.
When timeout of an acknowledgement (ACK) occurs, it is judged that the packet is lost on the communication route and the packet is retransmitted, thereby securing reliable data communication.
As mentioned above, the TCP realizes high-efficiency data communication via a wide-area network by determining the state of the communication route by sender and receiver sites to perform the flow control or the congestion control in an end-to-end manner.
When attention is paid to a communication route of a client/server data communication via networks, a gateway or a router is located in a boundary portion between a LAN and a network, and a packet is sent to a partner via the networks.
A round-trip time from the time a request is transmitted until a response signal is received is long in an end-to-end data communication with a remote station. Consequently, vacancy occurs in the transmission of a packet, and there is a problem that even a high-speed network is used, the performance cannot be fully utilized.
A bottleneck of communication performance via networks is due to congestion or low throughput in the network rather than in the LAN. Therefore, in the TCP, a slow start control is executed on the assumption that congestion occurs in the network. Consequently, there is a problem that even when the high-speed network is used, optional performance cannot be fully realized.
On the other hand, in a high-speed network which can reserve a bandwidth such as an ATM (Asynchronous Transfer Mode) network, the bandwidth of the network which can be used by connections has high speed that is equal to or higher than that of the LAN performance. Moreover, since the bandwidth of communication of the network is reversed for every connection and a data transfer delay can be suppressed within a predetermined time, multi-media data can be received/transmitted.
Therefore, like in the TCP/IP, advantages of the ATM network can be fully used by hop-by-hop execution of the flow control or the congestion control more than by end-to-end execution of the flow control or the congestion control.
However, since the TCP is used in the end-to-end communication, neither a congestion state on a communication route nor the size of the network link of the hop-by-hop communication can be known.
Consequently, the flow control or the congestion control according to the network on the route cannot be performed and there is a problem that the performance and function of the network cannot be fully used.
In order to solve the problems regarding the network, there is a mirroring system for locally forming a copy of a remote file.
According to the mirroring system, however, when a copy of the same file is formed at plurality of locations, maintenance overhead for guaranteeing consistency of the file is incurred.
That is, when the copy file is updated, the changed contents have to be reflected to the other files, and it causes a problem of deterioration in performance by management overhead.
It is an object of the invention to solve the problems described above and to provide a system in which a server provided as a gateway between a network (for example, LAN) to which a client is connected and an another network (for example, wide area network (WAN)) to which a remote server is connected does not simply route a packet in a network layer but can execute flow control or a congestion control in a hop-by-hop manner, not in an end-to-end manner, in accordance with performance and functions of a network (link) connecting a client and a remote server and performance of each server.
According to the invention, in order to achieve the objects, there is provided a network data communication system for a network data communication in which a first computer connected to a first network and a second computer connected to a second network establish communication via a third computer connected to both of the networks. The third computer includes a communication proxy having a proxy registration table for registering a network address of the second computer and a communication proxy process for receiving a communication packet addressed to the second computer. The third computer searches the proxy registration table when a communication packet which is not addressed to the third computer is received, and when the network address of the communication packet is registered in the proxy registration table, the communication proxy process receives the communication packet and transmits the communication packet to the destination.
The third computer has a communication proxy registration waiting daemon for forming the communication proxy, and the second computer generates the communication proxy process for the communication proxy registration waiting daemon of the third computer and registers the network address of the second computer to the proxy registration table.
The communication proxy process on the third computer receives a communication parameter transmitted from the second computer and registers the communication parameter to the third computer.
When the communication proxy process receives a connection establishment request packet addressed to the second computer from the first computer, the communication proxy process establishes a connection between the communication proxy process and the first computer and further, establishes a connection between the communication proxy process and the second computer.
The third computer has a port number conversion table for converting a first communication port identifier which is used by the second computer for a communication with the first computer to a second communication port identifier which is used by the communication proxy process for communication with the first computer. When the third computer receives a communication packet addressed to the second computer, the first communication port identifier written in the communication packet is converted to the second communication port identifier, thereby allowing the communication proxy process to receive the communication packet.
The communication proxy process sends the communication packet which is addressed from the second computer to the communication proxy process to the first computer.
When the second computer sends the communication packet addressed to the communication proxy process to the first computer, the communication proxy process rewrites a source network address of the communication packet to a network address of the second computer.